﻿using System;
using UnityEngine;

namespace ParticlePlayground
{
	// Token: 0x020001AA RID: 426
	[Serializable]
	public class PlaygroundCache
	{
		// Token: 0x060009BB RID: 2491 RVA: 0x0004926C File Offset: 0x0004746C
		public virtual PlaygroundCache Clone()
		{
			PlaygroundCache playgroundCache = new PlaygroundCache();
			playgroundCache.initialSize = (this.initialSize.Clone() as float[]);
			playgroundCache.size = (this.size.Clone() as float[]);
			playgroundCache.life = (this.life.Clone() as float[]);
			playgroundCache.lifetimeSubtraction = (this.lifetimeSubtraction.Clone() as float[]);
			playgroundCache.rotation = (this.rotation.Clone() as float[]);
			playgroundCache.birth = (this.birth.Clone() as float[]);
			playgroundCache.birthDelay = (this.birthDelay.Clone() as float[]);
			playgroundCache.death = (this.death.Clone() as float[]);
			playgroundCache.emission = (this.emission.Clone() as bool[]);
			playgroundCache.rebirth = (this.rebirth.Clone() as bool[]);
			playgroundCache.lifetimeOffset = (this.lifetimeOffset.Clone() as float[]);
			playgroundCache.velocity = (this.velocity.Clone() as Vector3[]);
			playgroundCache.initialVelocity = (this.initialVelocity.Clone() as Vector3[]);
			playgroundCache.initialLocalVelocity = (this.initialLocalVelocity.Clone() as Vector3[]);
			playgroundCache.position = (this.position.Clone() as Vector3[]);
			playgroundCache.targetPosition = (this.targetPosition.Clone() as Vector3[]);
			playgroundCache.targetDirection = (this.targetDirection.Clone() as Vector3[]);
			playgroundCache.previousTargetPosition = (this.previousTargetPosition.Clone() as Vector3[]);
			playgroundCache.previousParticlePosition = (this.previousParticlePosition.Clone() as Vector3[]);
			playgroundCache.collisionParticlePosition = (this.collisionParticlePosition.Clone() as Vector3[]);
			playgroundCache.localSpaceMovementCompensation = (this.localSpaceMovementCompensation.Clone() as Vector3[]);
			playgroundCache.scatterPosition = (this.scatterPosition.Clone() as Vector3[]);
			playgroundCache.initialRotation = (this.initialRotation.Clone() as float[]);
			playgroundCache.rotationSpeed = (this.rotationSpeed.Clone() as float[]);
			playgroundCache.color = (this.color.Clone() as Color32[]);
			playgroundCache.scriptedColor = (this.scriptedColor.Clone() as Color32[]);
			playgroundCache.initialColor = (this.initialColor.Clone() as Color32[]);
			playgroundCache.lifetimeColorId = (this.lifetimeColorId.Clone() as int[]);
			playgroundCache.noForce = (this.noForce.Clone() as bool[]);
			playgroundCache.changedByProperty = (this.changedByProperty.Clone() as bool[]);
			playgroundCache.changedByPropertyColor = (this.changedByPropertyColor.Clone() as bool[]);
			playgroundCache.changedByPropertyColorLerp = (this.changedByPropertyColorLerp.Clone() as bool[]);
			playgroundCache.changedByPropertyColorKeepAlpha = (this.changedByPropertyColorKeepAlpha.Clone() as bool[]);
			playgroundCache.changedByPropertySize = (this.changedByPropertySize.Clone() as bool[]);
			playgroundCache.changedByPropertyTarget = (this.changedByPropertyTarget.Clone() as bool[]);
			playgroundCache.changedByPropertyDeath = (this.changedByPropertyDeath.Clone() as bool[]);
			playgroundCache.propertyTarget = (this.propertyTarget.Clone() as int[]);
			playgroundCache.propertyId = (this.propertyId.Clone() as int[]);
			playgroundCache.excludeFromManipulatorId = (this.excludeFromManipulatorId.Clone() as int[]);
			playgroundCache.propertyColorId = (this.propertyColorId.Clone() as int[]);
			playgroundCache.manipulatorId = (this.manipulatorId.Clone() as int[]);
			playgroundCache.isMasked = (this.isMasked.Clone() as bool[]);
			playgroundCache.maskAlpha = (this.maskAlpha.Clone() as float[]);
			if (this.maskSorting != null)
			{
				playgroundCache.maskSorting = (this.maskSorting.Clone() as int[]);
			}
			playgroundCache.isNonBirthed = (this.isNonBirthed.Clone() as bool[]);
			playgroundCache.isFirstLoop = (this.isFirstLoop.Clone() as bool[]);
			playgroundCache.simulate = (this.simulate.Clone() as bool[]);
			playgroundCache.isCalculatedThisFrame = (this.isCalculatedThisFrame.Clone() as bool[]);
			if (playgroundCache.lifetimeLoss == null)
			{
				playgroundCache.lifetimeLoss = new float[0];
			}
			else
			{
				playgroundCache.lifetimeLoss = (this.lifetimeLoss.Clone() as float[]);
			}
			return playgroundCache;
		}

		// Token: 0x04000B5D RID: 2909
		[HideInInspector]
		public float[] initialSize;

		// Token: 0x04000B5E RID: 2910
		[HideInInspector]
		public float[] size;

		// Token: 0x04000B5F RID: 2911
		[HideInInspector]
		public float[] rotation;

		// Token: 0x04000B60 RID: 2912
		[HideInInspector]
		public float[] life;

		// Token: 0x04000B61 RID: 2913
		[HideInInspector]
		public float[] lifetimeSubtraction;

		// Token: 0x04000B62 RID: 2914
		[HideInInspector]
		public float[] birth;

		// Token: 0x04000B63 RID: 2915
		[HideInInspector]
		public float[] birthDelay;

		// Token: 0x04000B64 RID: 2916
		[HideInInspector]
		public float[] death;

		// Token: 0x04000B65 RID: 2917
		[HideInInspector]
		public bool[] emission;

		// Token: 0x04000B66 RID: 2918
		[HideInInspector]
		public bool[] rebirth;

		// Token: 0x04000B67 RID: 2919
		[HideInInspector]
		public float[] lifetimeOffset;

		// Token: 0x04000B68 RID: 2920
		[HideInInspector]
		public Vector3[] velocity;

		// Token: 0x04000B69 RID: 2921
		[HideInInspector]
		public Vector3[] initialVelocity;

		// Token: 0x04000B6A RID: 2922
		[HideInInspector]
		public Vector3[] initialLocalVelocity;

		// Token: 0x04000B6B RID: 2923
		[HideInInspector]
		public Vector3[] position;

		// Token: 0x04000B6C RID: 2924
		[HideInInspector]
		public Vector3[] targetPosition;

		// Token: 0x04000B6D RID: 2925
		[HideInInspector]
		public Vector3[] targetDirection;

		// Token: 0x04000B6E RID: 2926
		[HideInInspector]
		public Vector3[] previousTargetPosition;

		// Token: 0x04000B6F RID: 2927
		[HideInInspector]
		public Vector3[] previousParticlePosition;

		// Token: 0x04000B70 RID: 2928
		[HideInInspector]
		public Vector3[] collisionParticlePosition;

		// Token: 0x04000B71 RID: 2929
		[HideInInspector]
		public Vector3[] localSpaceMovementCompensation;

		// Token: 0x04000B72 RID: 2930
		[HideInInspector]
		public Vector3[] scatterPosition;

		// Token: 0x04000B73 RID: 2931
		[HideInInspector]
		public float[] initialRotation;

		// Token: 0x04000B74 RID: 2932
		[HideInInspector]
		public float[] rotationSpeed;

		// Token: 0x04000B75 RID: 2933
		[HideInInspector]
		public Color32[] color;

		// Token: 0x04000B76 RID: 2934
		[HideInInspector]
		public Color32[] scriptedColor;

		// Token: 0x04000B77 RID: 2935
		[HideInInspector]
		public Color32[] initialColor;

		// Token: 0x04000B78 RID: 2936
		[HideInInspector]
		public int[] lifetimeColorId;

		// Token: 0x04000B79 RID: 2937
		[HideInInspector]
		public bool[] noForce;

		// Token: 0x04000B7A RID: 2938
		[HideInInspector]
		public bool[] isNonBirthed;

		// Token: 0x04000B7B RID: 2939
		[HideInInspector]
		public bool[] isFirstLoop;

		// Token: 0x04000B7C RID: 2940
		[HideInInspector]
		public bool[] simulate;

		// Token: 0x04000B7D RID: 2941
		[HideInInspector]
		public bool[] isCalculatedThisFrame;

		// Token: 0x04000B7E RID: 2942
		[HideInInspector]
		public bool[] changedByProperty;

		// Token: 0x04000B7F RID: 2943
		[HideInInspector]
		public bool[] changedByPropertyColor;

		// Token: 0x04000B80 RID: 2944
		[HideInInspector]
		public bool[] changedByPropertyColorLerp;

		// Token: 0x04000B81 RID: 2945
		[HideInInspector]
		public bool[] changedByPropertyColorKeepAlpha;

		// Token: 0x04000B82 RID: 2946
		[HideInInspector]
		public bool[] changedByPropertySize;

		// Token: 0x04000B83 RID: 2947
		[HideInInspector]
		public bool[] changedByPropertyTarget;

		// Token: 0x04000B84 RID: 2948
		[HideInInspector]
		public bool[] changedByPropertyDeath;

		// Token: 0x04000B85 RID: 2949
		[HideInInspector]
		public int[] propertyTarget;

		// Token: 0x04000B86 RID: 2950
		[HideInInspector]
		public int[] propertyId;

		// Token: 0x04000B87 RID: 2951
		[HideInInspector]
		public int[] propertyColorId;

		// Token: 0x04000B88 RID: 2952
		[HideInInspector]
		public int[] manipulatorId;

		// Token: 0x04000B89 RID: 2953
		[HideInInspector]
		public int[] excludeFromManipulatorId;

		// Token: 0x04000B8A RID: 2954
		[HideInInspector]
		public float[] lifetimeLoss;

		// Token: 0x04000B8B RID: 2955
		[HideInInspector]
		public bool[] isMasked;

		// Token: 0x04000B8C RID: 2956
		[HideInInspector]
		public float[] maskAlpha;

		// Token: 0x04000B8D RID: 2957
		[HideInInspector]
		public int[] maskSorting;
	}
}
